import {getArticleDetail,addFav,removeFav,like,unlike,commentLike,commentUnlike} from '../../api/api.js'
import {formatDate} from '../../common/utils.js'

export default{
	// 获取文章详情getArticleDetail
	getArticleDetail(){
		let {article_id,uid:user_id}=this;
		getArticleDetail({
			article_id,user_id
		}).then(res=>{
			console.log(res);
			if(res.code==0){
				res.data.time=formatDate(res.data.time)//如果上面的{{article.time}} 不使用过滤器的话  要在这里对time进行一个二次封装
				this.article=res.data;
				
				this.getCommentList()
			}else{
				this.$toast(res.msg)
			}
			
		})
	},
	// 切换文章收藏toggleFav
	toggleFav(){
		// 前提条件 要登陆
		// 验证有没有uid 判断有没有登录
		let {uid,article:{is_fav},article_id} =this;
		// 判断有没有登录  因为在main.js中封装过了  所以不用像31行-37行那样写了  直接写为 29行的代码即可
		if(!this.checkLogin()) return
		
		// if(!uid){
		// 	this.$toast('请先登录');
		// 	setTimeout(v=>{
		// 		this.$router.push('/log');
		// 	})
		// 	return
		// }
		
		// 如果原来 是收藏的 调取消收藏的接口
		// 如果原来 是没收藏的 调收藏的接口
		// 有没有收藏取决于article里的is_fav
		// console.log(is_fav);
		
		if(is_fav){
			// 判断  如果is_fav为  true  调   取消收藏的接口
			removeFav({
				// 接口中的参数  需要在上面 通过解构拿到
				article_id,
				user_id:uid,
			}).then(res=>{
				// console.log(res);
				this.$toast(res.msg)
				// 做一个判断  收藏成功 以后 变颜色(通过后端的  变)
				if(res.code==0){
					this.article.is_fav=false
				}
			})
			
		}else{
			// 判断  如果is_fav为  false  调   收藏的接口
			addFav({
				// 接口中的参数  需要在上面 通过解构拿到
				article_id,
				user_id:uid,
			}).then(res=>{
				// console.log(res);
				this.$toast(res.msg)
				// 做一个判断  收藏成功 以后 变颜色(通过后端的  变)
				if(res.code==0){
					this.article.is_fav=true
				}
			})
		}
	},
	// 切换文章点赞toggleLike
	toggleLike(){
		// 前提条件 要登陆
		// 验证有没有uid 判断有没有登录
		let {uid,article:{is_like},article_id} =this;
		if(!uid){
			this.$toast('请先登录');
			setTimeout(v=>{
				this.$router.push('/log');
			})
			return
		}
		
		// 如果原来 是点赞的 调取消点赞的接口
		// 如果原来 是没点赞的 调点赞的接口
		// 有没有点赞取决于article里的is_like
		// console.log(is_like);
		
		if(is_like){
			// 判断  如果is_like为  true  调   取消点赞的接口
			unlike({
				// 接口中的参数  需要在上面 通过解构拿到
				article_id,
				user_id:uid,
			}).then(res=>{
				// console.log(res);
				this.$toast(res.msg);
				// 做一个判断  点赞成功 以后 变颜色(通过后端的  变)
				if(res.code==0){
					this.article.is_like=false;
				}
			})
			
		}else{
			// 判断  如果is_like为  false  调   点赞的接口
			like({
				// 接口中的参数  需要在上面 通过解构拿到
				article_id,
				user_id:uid,
			}).then(res=>{
				// console.log(res);
				this.$toast(res.msg);
				// 做一个判断 点赞成功 以后 变颜色(通过后端的  变)
				if(res.code==0){
					this.article.is_like=true;
				}
			})
		}
		console.log(this.article.is_like);
	},
	
	// 切换评论点赞
	// 第一个参 点击的那个评论的ID (comment_id)
	// 第二个参 是否点过赞 (is_like)
	// 第三个参 index
	togglecommentLike(comment_id,is_like,index){
		if(!this.checkLogin()) return;// 校验他有没有 登录
		
		let{uid}=this;
		
		// 如果原来已经赞过的状态 是取消  反之是 点赞
		if(is_like){
			// 取消// 原来 点过赞了  再点就取消点赞
			commentUnlike({
				comment_id,
				user_id:uid
			}).then(res=>{
				console.log(res);
				this.$toast(res.msg);
				if(res.code==0){
					this.commentList[index].like_count=res.count;
					this.commentList[index].is_like=false;//点后变颜色
				}
			})
		}else{
			// 去点赞
			commentLike({
				comment_id,
				user_id:uid
			}).then(res=>{
				console.log(res);
				this.$toast(res.msg);
				// 做一个判断 点赞成功 赞的数字加一
				if(res.code==0){
					// commentList 是我们的数据  index 是第几个 大拇指的数是like_count
					// commentList的第index个的like_count
					this.commentList[index].like_count=res.count;
					this.commentList[index].is_like=true;//点后变颜色
				}
			})
		}
		
	}
}